package com.ndp.fb.model.fbagent.param.adset;

import com.ndp.fb.annotation.FBParam;
import com.ndp.fb.model.fbagent.param.FacebookParam;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

/**
 * Created by infi on 2015/1/25.
 */
@Setter
@Getter
@NoArgsConstructor
public class AdSetParam extends FacebookParam {
    /**
     * adset_id
     */
    private String adSetId;

    @FBParam("asset_feed_id")
    private Integer assetFeedId;

    @FBParam("adlabels")
    private List<Object> adlabels;
    /**
     * name
     */
    @FBParam("name")
    private String name;


    /**
     *
     * status
     * enum{ACTIVE, PAUSED, ARCHIVED, DELETED}
     */
    @FBParam("status")
    private String status;


    @FBParam("adset_schedule")
    private List<Object> adsetSchedule;

    @FBParam("creative_sequence")
    private List <Integer> creativeSequence;
    /**
     * daily_budget
     */
    @FBParam("daily_budget")
    private Integer dailyBudget;

    /**
     * lifetime_budget
     */
    @FBParam("lifetime_budget")
    private Integer lifetimeBudget;

    @FBParam("lifetime_frequency_cap")
    private Integer lifetimeFrequencyCap;

    @FBParam("lifetime_imps")
    private Integer lifetimeImps;


    @FBParam("daily_imps")
    private Integer dailyImps;


    @FBParam("date_format")
    private  String  dateFormat;


    /**
     * start_time
     */
    @FBParam("start_time")
    private String startTime;

    /**
     * end_time
     */
    @FBParam("end_time")
    private String endTime;

    /**
     * list<enum{VALIDATE_ONLY, INCLUDE_WARNINGS}>
     */
    @FBParam("execution_options")
    private  List<String> executionOptions;

    @FBParam("is_autobid")
    private Boolean isAutobid;
    /**
     * redownload
     */
    @FBParam("redownload")
    private Boolean redownload;

    @FBParam("rf_prediction_id")
    private Integer rfPredictionId;

    @FBParam("rtb_flag")
    private  Boolean rtbFlag;

    /**
     * campaign_id
     */
    @FBParam("campaign_id")
    private Long campaignId;



    /**
     * 定价信息
     */
    @FBParam("bid_info")
    private Object bidInfo;


    /**
     * 优化方向
     * 参见枚举:OptimizationGoal`
     */
    @FBParam("optimization_goal")
    private String optimizationGoal;

    @FBParam("pacing_type")
    private  List<String> pacingType;

//    @FBParam("product_ad_behavior")
//    private List<String > productAdBehavior;
    /**
     * 结算事件
     * 参见枚举:BillingEvent
     */
    @FBParam("billing_event")
    private String billingEvent;
    /**
     * 出价
     */
    @FBParam("bid_amount")
    private Integer bidAmount;


    /**
     * targeting
     */
    @FBParam("targeting")
    private Object targeting;

    @FBParam("promoted_object")
    private Object promotedObject;                          // promoted_object:{"product_set_id":"<PRODUCT_SET_ID>"
//
//    @FBParam("summary")
//    private String summary;

//    @FBParam("updated_time")
//    private String updatedTime;


    public Boolean getIsAutobid(){
        return isAutobid;
    }

    public void setIsAutobid(Boolean isAutobid){
        this.isAutobid=isAutobid;
    }

    public void setAutobid(Boolean autobid) {
        isAutobid = autobid;
    }

    public Boolean isIsAutobid(){
        return isAutobid;
    }



}
